package com.market.service;
import com.market.entity.*;
import com.market.entity.SellerCashFlow;
import com.market.vo.R;
import java.util.List;

/**
 * @ClassName BackstageService
 * @Description 后台管理人员业务层
 * @Author pengqing
 * @Date 2022/3/24 13:16
 * @Version 1.0
 */
public interface BackstageService {

    /**
     * 管理人员
     */
     //添加后台用户
    boolean addBackStageUser(Backstage backstage);

    //根据id查询某个后台用户信息
    Backstage queryBackstage(int backstageId);

    //根据姓名和账号找后台用户信息
    Backstage queryBackstageByNameAndAccount(String name,String account);

    //查询所有审核过的的后台人员
    List<Backstage> queryAllBackstage();

    //根据id查询某个买家信息
    Buyer queryBuyerInfo(int buyerId);

    //查询所有买家
    List<Buyer> queryAllBuyer();

    //锁定买家
    boolean lockBuyer(int buyerId);

    //解锁买家
    boolean unLockBuyer(int buyerId);

    //锁定后台用户
    boolean lockBackstage(int buyerId);

    //解锁后台用户
    boolean unLockBackstage(int buyerId);

    //修改后台人员权限
    boolean updateRole(int backstageId,int newRole);

    //新增商品
    boolean addGoods(Goods goods);

    //上架商品
    boolean shelveGoods(int goodId);

    //下架商品
    boolean offShelveGoods(int goodsId);

    //删除商品
    boolean deleteGoods(int goodsId);

    //查询商品
    Goods queryGoodsByGoodsId(int goodsId);

    //添加商品分类
    boolean addGoodsType(String typeName);

    //修改商品属性（名称，售价，描述，每日可销售数量）
    boolean updateGoodsProperty(int goodsId,String goodsName,double price,String description,int typeId,int sellNum);

    //修改商品可销售数量
    boolean updateGoodsSellNums(int goodsId,int newSellNum);

    //查看卖家所有（超市）流水记录
    List<SellerCashFlow> querySellerCashFlow();

    //查看买家所有流水
    List<BuyerCashFlow> queryBuyerCashFlow(int buyerId);

    //查看小店所有流水
    List<Store> queryStoreCashFlow(int storeId);

    //查看所有订单
    List<Order> queryAllOrder();

    //根据订单编号查看某个订单
    Order queryOrderByOrderCode(String orderCode);

    // 根据订单id查询某个订单
    Order queryOrderByOrderId(int orderId);

    // 根据买家id查询买家的所有订单
    List<Order> queryOrderByBuyerId(int buyerId);

    //查看某个退货单
    SendBack querySendBack(int orderId);

    //查看某个买家的所有退货单
    List<SendBack> queryAllSendBack(int buyerId);

    //删除退货单
    boolean deleteSendBack(int sendBackId);

    //删除订单
    boolean deleteOrder(int orderId);

    //查看今天的已付款的订单
    List<Order> queryTodayAlreadyPaidOrder(String createTime);

    //根据账号查询某个后台人员
    Backstage queryBackstageByAccount(String account);

    //查询所有状态为2的后台人员
    List<Backstage> queryBackstageByState();

    //删除后台人员
    boolean delBackstage(int backId);



    /**
     * 客服人员
     */
    //审核退货
    boolean checkSendBackGoods(int sendBackId,int state);

    //审核换货
    boolean checkExchange(int orderId);

    //审核是否与小店合作
    boolean checkStore(int storeId,int newState);

    /**
     * 分拣人员
     */
    //打印今日分拣单
    List<SortRecord> printTodaySortRecord(String day);

    /**
     * 入库人员
     */
    //商品入库
    boolean goodsIntoStorage(int goodsId,String backStageName);



    /**
     * 业务人员
     */


}
